package ch.csp.transformer;

import static org.junit.Assert.*;

import java.util.ArrayList;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import ch.csp.exchange.LineInfo;
import ch.csp.exchange.ParagraphWithLineAndWords;
import ch.csp.exchange.ParagraphWithWords;

public class LineTransformerTest {
	ArrayList<ParagraphWithWords> paraWordList = new ArrayList<ParagraphWithWords>();
	LineTransformer transformer;
	@Before
	public void setUp() throws Exception {
		
		paraWordList.add(new ParagraphWithWords());
		paraWordList.get(paraWordList.size()-1).words.add("Hallo");
		paraWordList.get(paraWordList.size()-1).words.add("dies");
		paraWordList.get(paraWordList.size()-1).words.add("ist");
		paraWordList.get(paraWordList.size()-1).words.add("ein");
		paraWordList.get(paraWordList.size()-1).words.add("Testsatz.");
		paraWordList.get(paraWordList.size()-1).words.add("Mit");
		paraWordList.get(paraWordList.size()-1).words.add("einem");
		paraWordList.get(paraWordList.size()-1).words.add("zusätzlichen");
		paraWordList.get(paraWordList.size()-1).words.add("sehr");
		paraWordList.get(paraWordList.size()-1).words.add("langem");
		paraWordList.get(paraWordList.size()-1).words.add("Wort");
		paraWordList.get(paraWordList.size()-1).words.add("hier:");
		paraWordList.get(paraWordList.size()-1).words.add("Superdupergagimistshitmotherfuckertestthisstuff");
		
		paraWordList.add(new ParagraphWithWords());
		paraWordList.get(paraWordList.size()-1).words.add("Hallo");
		paraWordList.get(paraWordList.size()-1).words.add("dies");
		paraWordList.get(paraWordList.size()-1).words.add("ist");
		paraWordList.get(paraWordList.size()-1).words.add("ein");
		paraWordList.get(paraWordList.size()-1).words.add("Testsatz.");
		paraWordList.get(paraWordList.size()-1).words.add("Mit");
		paraWordList.get(paraWordList.size()-1).words.add("einem");
		paraWordList.get(paraWordList.size()-1).words.add("zusätzlichen");
		paraWordList.get(paraWordList.size()-1).words.add("sehr");
		paraWordList.get(paraWordList.size()-1).words.add("langem");
		paraWordList.get(paraWordList.size()-1).words.add("Wort");
		paraWordList.get(paraWordList.size()-1).words.add("hier:");
		paraWordList.get(paraWordList.size()-1).words.add("Superdupergagimistshitmotherfuckertestthisstuff");
	
	}

	@After
	public void tearDown() throws Exception {
		paraWordList = new ArrayList<ParagraphWithWords>();
	}

	@Test
	public void test() {
		transformer = new LineTransformer(paraWordList,20);
		ArrayList<ParagraphWithLineAndWords> result = transformer.transform();
		int lineCount = 1;
		
		for(ParagraphWithLineAndWords foo:result) {
			System.out.println("==========NEW PARAGRAPH=========");
			for(LineInfo lineInfo:foo.lineInfos) {
				System.out.print("Line" + lineCount + ": ");
				for(String word:lineInfo.words) {
					System.out.print(word + " ");
				}
				System.out.println("Add Spaces: " + lineInfo.additionalSpaces);
				lineCount++;
			}
			lineCount = 0;
		}
		
		assertTrue(true);
	}

}
